Разъяренный чтец эгоистично бьёт пятью жердями шустрого фехтовальщика. Наш банк вчера же выплатил Ф.Я. Эйхгольду комиссию за ценные вещи. Эх, чужак, общий съём цен шляп (юфть) – вдрызг! В чащах юга жил бы цитрус? Да, но фальшивый экземпляр!
Τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός</property>
- <signal name="key-press-event" handler="entry_key_press"/>
<signal name="activate" handler="stop_edit"/>
<property name="valign">start</property>
<property name="width-chars">50</property>
}
static gboolean
-entry_key_press (GtkEntry *entry, GdkEventKey *event)
+entry_key_press (GtkEventController *controller,
+ guint keyval,
+ guint keycode,
+ GdkModifierType modifiers,
+ GtkEntry *entry)
{
- guint keyval;
-
- gdk_event_get_keyval ((GdkEvent *)event, &keyval);
-
if (keyval == GDK_KEY_Escape)
{
gtk_entry_set_text (GTK_ENTRY (entry), text);
{
GtkBuilder *builder;
GtkWidget *feature_list;
+ GtkEventController *controller;
builder = gtk_builder_new_from_resource ("/font_features/font-features.ui");
gtk_builder_add_callback_symbol (builder, "reset", reset_features);
gtk_builder_add_callback_symbol (builder, "stop_edit", G_CALLBACK (stop_edit));
gtk_builder_add_callback_symbol (builder, "toggle_edit", G_CALLBACK (toggle_edit));
- gtk_builder_add_callback_symbol (builder, "entry_key_press", G_CALLBACK (entry_key_press));
gtk_builder_connect_signals (builder, NULL);
window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));
entry = GTK_WIDGET (gtk_builder_get_object (builder, "entry"));
edit_toggle = GTK_WIDGET (gtk_builder_get_object (builder, "edit_toggle"));
+ controller = gtk_event_controller_key_new (entry);
+ g_object_set_data_full (G_OBJECT (entry), "controller", controller, g_object_unref);
+ g_signal_connect (controller, "key-pressed", G_CALLBACK (entry_key_press), entry);
+
add_check_group (feature_list, _("Kerning"), (const char *[]){ "kern", NULL });
add_check_group (feature_list, _("Ligatures"), (const char *[]){ "liga",
"dlig",
/* Links can be activated by pressing Enter.
*/
static gboolean
-key_press_event (GtkWidget *text_view,
- GdkEventKey *event)
+key_pressed (GtkEventController *controller,
+ guint keyval,
+ guint keycode,
+ GdkModifierType modifiers,
+ GtkWidget *text_view)
{
GtkTextIter iter;
GtkTextBuffer *buffer;
- guint keyval;
-
- gdk_event_get_keyval ((GdkEvent *)event, &keyval);
switch (keyval)
{
break;
}
- return FALSE;
+ return GDK_EVENT_PROPAGATE;
}
static void set_cursor_if_appropriate (GtkTextView *text_view,
GtkWidget *view;
GtkWidget *sw;
GtkTextBuffer *buffer;
+ GtkEventController *controller;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Hypertext");
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (view), GTK_WRAP_WORD);
gtk_text_view_set_left_margin (GTK_TEXT_VIEW (view), 20);
gtk_text_view_set_right_margin (GTK_TEXT_VIEW (view), 20);
- g_signal_connect (view, "key-press-event",
- G_CALLBACK (key_press_event), NULL);
+ controller = gtk_event_controller_key_new (view);
+ g_object_set_data_full (G_OBJECT (view), "controller", controller, g_object_unref);
+ g_signal_connect (controller, "key-pressed", G_CALLBACK (key_pressed), view);
g_signal_connect (view, "event",
G_CALLBACK (event_cb), NULL);
GdkEvent *event,
GtkSearchBar *bar)
{
- return gtk_search_bar_handle_event (bar, event);
+ if (gdk_event_get_event_type (event) == GDK_KEY_PRESS)
+ return gtk_search_bar_handle_event (bar, event);
+
+ return GDK_EVENT_PROPAGATE;
}
static void
gtk_box_pack_start (GTK_BOX (vbox), searchbar);
/* Hook the search bar to key presses */
- g_signal_connect (window, "key-press-event",
- G_CALLBACK (window_key_press_event_cb), searchbar);
+ g_signal_connect (window, "event", G_CALLBACK (window_key_press_event_cb), searchbar);
/* Help */
label = gtk_label_new ("Start Typing to search");